/*
============================================================================
 Name		: Flashbox4Document.h
 Author	  : ceze
 Copyright   : FlashBox for ver.Zhongyou(???)
 Description : Declares document class for application.
============================================================================
*/

#ifndef __FLASHBOX4DOCUMENT_h__
#define __FLASHBOX4DOCUMENT_h__

// INCLUDES
#include <akndoc.h>

// FORWARD DECLARATIONS
class CFlashbox4AppUi;
class CEikApplication;


// CLASS DECLARATION

/**
* CFlashbox4Document application class.
* An instance of class CFlashbox4Document is the Document part of the
* AVKON application framework for the Flashbox4 example application.
*/
class CFlashbox4Document : public CAknDocument
	{
	public: // Constructors and destructor

		/**
		* NewL.
		* Two-phased constructor.
		* Construct a CFlashbox4Document for the AVKON application aApp
		* using two phase construction, and return a pointer
		* to the created object.
		* @param aApp Application creating this document.
		* @return A pointer to the created instance of CFlashbox4Document.
		*/
		static CFlashbox4Document* NewL( CEikApplication& aApp );

		/**
		* NewLC.
		* Two-phased constructor.
		* Construct a CFlashbox4Document for the AVKON application aApp
		* using two phase construction, and return a pointer
		* to the created object.
		* @param aApp Application creating this document.
		* @return A pointer to the created instance of CFlashbox4Document.
		*/
		static CFlashbox4Document* NewLC( CEikApplication& aApp );

		/**
		* ~CFlashbox4Document
		* Virtual Destructor.
		*/
		virtual ~CFlashbox4Document();

	public: // Functions from base classes

		/**
		* CreateAppUiL
		* From CEikDocument, CreateAppUiL.
		* Create a CFlashbox4AppUi object and return a pointer to it.
		* The object returned is owned by the Uikon framework.
		* @return Pointer to created instance of AppUi.
		*/
		CEikAppUi* CreateAppUiL();

	private: // Constructors

		/**
		* ConstructL
		* 2nd phase constructor.
		*/
		void ConstructL();

		/**
		* CFlashbox4Document.
		* C++ default constructor.
		* @param aApp Application creating this document.
		*/
		CFlashbox4Document( CEikApplication& aApp );

	};

#endif // __FLASHBOX4DOCUMENT_h__

// End of File
